home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD School House 10
/
CD School House - Education and Games (10.0) - Wayzata Technology (1995).iso
/
mac
/
DOS
/
MISC
/
FTK
/
FREETK.HLP
< prev
next >
Wrap
Text File
|
1994-02-24
|
97KB
|
4,591 lines
!!?
8+Y
#LG
!#S
"N#
"N#
002
#LG
.Y6
000
001
#O1
002
Help Index
!"L
Top Level Commands
!%+
001
#[E
001
Help on Help
!!S
001
0HZ
004
Help on Help
!!S
Configuration
!$\
Load File
"16
Top Level Commands
!%+
001
16N
000
001
0\W
000
001
1S-
003
Function Keys
!&=
Slash Commands
""=
Navigation Commands
!'%
001
1Y-
001
Top Level Commands
!%+
001
2%E
001
Top Level Commands
!%+
001
24<
001
Model Structure
!(2
001
$(;
001
Problem Solving with TK
!'M
001
$R8
002
Expression
!+)
Logical Expression
!.#
001
$XV
001
Name Syntax
!*9
001
$^)
000
001
&IJ
001
Name Syntax
!*9
001
&PA
005
Arithmetic Expression
!02
Relational Expression
!/7
Logical Expression
!.#
Symbolic Expression
!-C
Indeterminate Expressions
"E9
001
&V7
001
Expression
!+)
001
&ZI
003
Relational Expression
!/7
Boolean Functions
!8+
Expression
!+)
001
&^6
002
Expression
!+)
Arithmetic Operators
!1-
001
'%=
002
Expression
!+)
Arithmetic Operators
!1-
001
5F.
002
Arithmetic Expression
!02
Relational Expression
!/7
012
%,+
%2+
%4@
%<7
%<@
%?Y
%B=
%GD
%QQ
%YB
&&F
&2]
000
001
%2+
001
Built-in Functions
!24
001
%4@
001
Built-in Functions
!24
001
%<@
001
Built-in Functions
!24
001
%?Y
001
Built-in Functions
!24
001
%B=
001
Built-in Functions
!24
001
%GD
001
Built-in Functions
!24
001
%QQ
002
Built-in Functions
!24
Complex Arithmetic
!:<
001
%YB
002
Logical Expression
!.#
Built-in Functions
!24
001
&&F
001
Built-in Functions
!24
001
&2]
001
Built-in Functions
!24
001
'*T
001
Complex Functions
!7*
001
*U-
000
001
*\3
002
Expression
!+)
Rule Syntax
!(_
001
+!#
002
Expression
!+)
Rule Syntax
!(_
001
+)"
001
Expression
!+)
001
+,Y
001
Built-in Functions
!24
001
+3D
001
Name Syntax
!*9
001
+6H
001
Built-in Functions
!24
001
+;2
001
Built-in Functions
!24
001
+?R
001
Values
!*H
001
+D$
001
Built-in Functions
!24
001
+I'
001
Expression
!+)
001
+OB
001
Complex Arithmetic
!:<
001
+S=
001
Expression
!+)
001
+W*
002
Rule Syntax
!(_
Complex Arithmetic
!:<
001
+]I
001
Expression
!+)
001
,"+
001
Values
!*H
001
,%M
000
001
,)S
001
Editing Commands
"$H
001
,.*
001
Blank Command
"&$
001
,1F
001
Editing Commands
"$H
001
,9@
001
Save Command
"4-
001
,F(
001
Load Command
"16
001
,R[
001
Disk Index
"0A
001
,]G
001
Load Command
"16
001
-##
000
001
-(\
000
001
-,@
000
001
-1>
001
Blank Command
"&$
001
-:$
000
001
->)
001
Expression
!+)
001
-BG
001
Disk Index
"0A
001
-H#
001
Disk Index
"0A
001
-L;
000
001
-P2
001
Status Field
"7'
001
-V+
000
001
-Z6
001
Configuration
!$\
001
-]Q
001
Disk Index
"0A
001
.#%
001
Disk Index
"0A
001
.(*
001
Disk Index
"0A
001
.*#
001
Disk Index
"0A
001
..S
000
001
.2S
001
Disk Index
"0A
002
.7X
.Y6
000
001
.8:
000
001
.>1
000
001
.CB
000
001
.GP
000
001
.KA
000
001
.Q!
001
Disk Index
"0A
001
.TB
000
002
.X0
.Y6
000
002
.\O
.Y6
000
002
/%8
._0
000
001
/))
000
002
/-<
._0
000
002
//7
._0
000
002
/0T
._0
000
002
/26
._0
000
002
/6@
._0
000
002
/8`
._0
000
002
/;B
._0
000
002
/>6
._0
000
002
/A+
._0
000
001
/CC
000
002
/FL
._0
000
001
/H1
000
002
/K'
._0
000
001
/LH
000
002
/OP
/P,
000
002
/S\
._0
000
002
/V"
._0
000
002
/Y)
/P,
000
002
/YE
/P,
000
001
/Z!
000
001
/\E
001
Symbolic Value
!*H
001
/^J
001
Iterative Solver
"+B
001
0)O
000
001
0*[
000
001
0/T
001
Iterative Solver
"+B
001
09.
002
Overdefined
!\%
Comparison Tolerance
"F$
001
0A1
001
Inconsistent
![)
001
*:N
001
Storage Command
"//
001
*AJ
002
Slash Commands
""=
Sheet Select Command
!_L
001
'00
004
Variable Sheet
!`=
Rule Sheet
!`L
Unit Sheet
"!@
Select Sheet Command
!_L
001
'7+
002
Sheets
!^+
Window Command
!],
001
2:R
000
001
2D#
002
Status Field
"?&
Rule Syntax
!(_
001
2H[
002
Unit Sheet Fields
"@'
Unit Conversion
"@G
001
'=J
008
Editing Commands
"$H
Window
!],
Storage
"//
Print
".'
Examine
"6X
Reset
"6I
Quit
".K
Top Level Commands
!%+
001
'LF
006
Edit Field
"'0
Blank
"&$
Delete
"'V
Insert
"(<
Copy
"&J
Move
")"
001
'W?
001
Editing Commands
"$H
001
'\U
001
Editing Commands
"$H
001
(*+
001
Editing Commands
"$H
001
($W
001
Editing Commands
"$H
001
(3<
001
Editing Commands
"$H
001
(:G
001
Editing Commands
"$H
001
*L1
002
Direct Solver
"*Q
Iterative Solver
"+B
001
-49
000
001
$1V
002
Solvers
"K(
Solve Command
")H
001
$<X
007
Solvers
"K(
Solve Command
")H
Direct Solver
"*Q
Comparison Tolerance
"F$
Iteration Count
"H"
Convergence Factor
"I!
Troubleshooting
"J"
001
(F\
001
Slash Commands
""=
001
(RN
001
Slash Commands
""=
001
)$J
004
Load File
"16
Save File
"4-
Delete File
"5S
Disk Index
"0A
001
)-'
002
Storage Command
"//
Wildcards
"ME
001
)D@
003
Storage Command
"//
Disk Index
"0A
FREETK Limits
!$M
001
)V/
005
Save Model
"4-
Save Variables
"4O
Save Units
"51
Disk Index
"0A
Storage Command
"//
001
)]=
001
Save Options
"2@
001
*%]
001
Save Options
"2@
001
*-/
001
Save Options
"2@
001
*4!
002
Storage Command
"//
Disk Index
"0A
001
(Z+
000
001
3.B
000
001
3=(
001
Variable Sheet
!`=
001
3FX
003
Variable Sheet
!`=
Values
!*H
Expressions
!+)
001
3MZ
002
Name Syntax
!*9
Variable Sheet
!`=
001
3PF
001
Variable Sheet
!`=
001
3Y+
004
Variable Sheet
!`=
Unit Conversion
"@G
Display Unit
";L
Calculation Unit
"=)
001
46G
004
Unit Field
":(
Calculation Unit
"=)
Unit Name
!*9
Unit Conversion
"@G
001
40U
003
Display Unit
";L
Unit Name
!*9
Unit Conversion
"@G
001
4%:
000
001
4(_
001
Iterative Solver
"+B
001
4<K
001
Rule Sheet
!`L
001
4G%
001
Rule Syntax
!(_
001
2N(
001
Unit Sheet
"!@
001
2[/
002
Unit Sheet
"!@
Unit Field
":(
001
5^2
005
Status Line
"C:
Prompt/Error Line
"D"
Window Command
!],
Configuration File
!$\
Select Sheet Command
!_L
001
5%W
001
Screen Composition
"A8
001
52_
003
Screen Composition
"A8
Iteration Count
"H"
Convergence Factor
"I!
001
5UJ
001
Zero-by-Zero Division
"L"
001
4KH
003
Typical Value
"G8
Iterative Solver
"+B
Overdefined Problem
!\%
001
4YC
001
Comparison Tolerance
"F$
001
6%R
002
Iterative Solver
"+B
Convergence Factor
"I!
001
63(
002
Iterative Solver
"+B
Comparison Tolerance
"F$
001
7BZ
003
Solvers
"K(
Examine Command
"6X
Help on Help
!!S
001
6C)
002
Direct Solver
"*Q
Iterative Solver
"+B
001
73Z
001
Indeterminate Expressions
"E9
001
7:D
001
Troubleshooting
"J"
001
6:S
000
001
58`
000
001
#M<
000
145
┌────── Getting Started ──────┐
!#.
│ Problem Solving with TK │
!'M
│ Model Structure │
!(2
│ Rule Syntax │
!(_
│ S o l v e r s │
"K(
│ Unit Conversion │
"@G
│ Screen Composition │
"A8
│ S h e e t s │
!^+
│ Top Level Commands │
!%+
│ Saving and Loading │
"//
│ Troubleshooting │
"J"
│ How to Use Help │
!!S
└──────── Help Index ─────────┘
!"L
═════════════ A ═════════════
!!S
Arithmetic Expression
!02
Arithmetic Operators
!1-
═════════════ B ═════════════
!!S
Beep Signal
"LQ
Blank Command, /B
"&$
Boolean Functions
!8+
Built-in Functions
!24
═════════════ C ═════════════
!!S
Calculation Unit
"=)
Comment Field
">1
Comparison Tolerance
"F$
Complex Arithmetic
!:<
Complex Functions
!7*
Conditional Rule
!(_
Configuration
!$\
Convergence Factor
"I!
Copy Command, /C
"&J
═════════════ D ═════════════
!!S
Delete Command, /D
"'V
Delete File, /SD
"5S
Direct Solver
"*Q
Disk Index
"0A
Display Unit
";L
═════════════ E ═════════════
!!S
Edit Field Command, F5
"'0
Editing Commands
"$H
Examine Command, /E
"6X
Exponential and Logarithmic Functions
!4J
Expression
!+)
Expression, Arithmetic
!02
Expression, Logical
!.#
Expression, Relational
!/7
Expression, Symbolic
!-C
═════════════ F ═════════════
!!S
First Guess
">@
FREETK
!$M
Function Keys
!&=
Function Reference
!)X
═════════════ G ═════════════
!!S
Getting Started
!#.
Global Filename Characters
"ME
═════════════ H ═════════════
!!S
Help
!!S
Help Index
!"L
Hyperbolic Functions
!52
═════════════ I ═════════════
!!S
IF Rules
!(_
Inconsistent Rule
![)
Indeterminate Expressions
"E9
Input Field, Variable Sheet
"7K
Insert Command, /I
"(<
Iteration Count
"H"
Iterative Solver
"+B
═════════════ L ═════════════
!!S
Limits of FREETK
!$M
Load File, /SL
"16
Logical Expression
!.#
═════════════ M ═════════════
!!S
Mathematical Constants
!3:
Memory Indicator
"C:
Model Structure
!(2
Move Command, /M
")"
Multi-Argument Functions
!9,
═════════════ N ═════════════
!!S
Name Field, Variable Sheet
"8N
Name Syntax
!*9
Navigation Commands
!'%
Non-Invertible Mathematical Functions
!6B
Numeric Value
!*H
═════════════ O ═════════════
!!S
Other Invertible Mathematical Functions
!5Z
Output Field, Variable sheet
"9D
Overdefined Problem
!\%
Overwrite Filename
!\G
═════════════ P ═════════════
!!S
Precedence of Operators
!1-
Print Command, /P
".'
Problem Solving
!'M
Prompt/Error Line
"D"
═════════════ Q ═════════════
!!S
Question Mark, ?
"M6
Quit Command, /Q
".K
═════════════ R ═════════════
!!S
Relational Expression
!/7
Reset Command, /R
"6I
Rule Field
"?F
Rule Sheet
!`L
Rule Syntax
!(_
Rule, Conditional
!(_
Rule, Unconditional
!(_
═════════════ S ═════════════
!!S
Save Model, /SS
"4-
Save Options of Storage Command
"2@
Save Units, /SU
"51
Save Variables, /SV
"4O
Screen Composition
"A8
Select Sheet Command, =
!_L
Sheets
!^+
Slash Commands, /
""=
Solution Indicator
"C:
Solve Command, F9
")H
Solvers
"K(
Status Field, Rule Sheet
"?&
Status Field, Variable Sheet
"7'
Status Functions
!9T
Status Line
"C:
Storage Command, /S
"//
Symbolic Expression
!-C
Symbolic Value
!*H
═════════════ T ═════════════
!!S
TK-Specific Functions
!9T
Top Level Commands
!%+
Trigonometric Functions
!4"
Troubleshooting
"J"
Typical Value
"G8
═════════════ U ═════════════
!!S
Unconditional Rule
!(_
Unit Conversion
"@G
Unit Field, Variable Sheet
":(
Unit Name
!*9
Unit Sheet
"!@
═════════════ V ═════════════
!!S
Values
!*H
Variable Name
!*9
Variable Sheet
!`=
Variable Subsheet
!`=
═════════════ W ═════════════
!!S
Wildcards
"ME
Window Command, /W
!],
═════════════ Z ═════════════
!!S
Zero-by-Zero Division
"L"
003
UNKNOWN
No Help was found for this context.
003
This help file was composed by
Magnus St. Norddahl in 1986.
Copyright 1986 Universal Technical Systems, Inc.
019
HOW TO USE HELP:
- From anywhere in FREETK press F1 to get help
on the feature, error, or place that the
cursor is covering (e.g. to get help on Rule
Sheet, press = R F1).
- If (More) is shown in the lower right corner,
PgDn will show more information.
- The arrow keys will move you among the Related
Topics, if any, or among the entries in the
Index. Press ─┘ to select a topic.
- Help commands:
┌─────────┬──────────────────────────┐
│ PgDn │ displays next screen │
│ PgUp │ displays previous screen │
│ L │ displays last topic │
│ I │ displays the Help Index │
│ F1 │ displays this screen │
│ Q or F2 │ quits Help │
└─────────┴──────────────────────────┘
019
HOW TO USE THE HELP INDEX:
- From any Help screen press I to invoke the
Help Index. If you are anywhere else in
FREETK, press F1 I or ? I .
- The arrow keys or will move you along the
index. Pressing ─┘ will select the topic
covered by the cursor.
- The next time the Help Index is displayed, the
cursor will be in the same place you left it
the last time.
- You may read through the major topics listed
in the box on the first page of Help Index to
familiarize yourself quickly with FREETK.
- The Help commands apply to the Help Index with
the following additions or modifications:
- PgDn or PgUp displays the next or the
the previous index page,
- Home or End moves the cursor to the
beginning or end of the Index.
017
TK MODELS serve as a base for problem solving
in TK. The models used with FREETK consist of:
- Rules declared in the RULE SHEET
- Variables declared in the VARIABLE SHEET with
attributes defined in Variable Subsheets
- Unit conversions defined in the UNIT SHEET
NOTES:
- TK models used with TK Solver Plus may take
advantage of six other sheets in addition
to the three sheets mentioned above:
List Sheet Global Sheet
Plot Sheet Function Sheet
Table Sheet Numeric Format Sheet
- Models developed in FREETK can be used
with TK Solver Plus
019
The DIRECT SOLVER
is activated by pressing F9. The Output
fields on the Variable Sheet are then
cleared and the new solution displayed.
SOLUTION OF A SINGLE EQUATION:
The Direct Solver solves an equation (rule)
for an unknown variable, provided the values
of all the other variables in that equation
are known. The unknown must not appear more
than once and must not be an argument of a
non-invertible function.
SOLUTION OF A SYSTEM OF EQUATIONS:
The Direct Solver scans through the rules of a
model and resolves them one after another
until no further evaluation is possible.
After each variable is evaluated it is
substituted into the other rules.
040
The ITERATIVE SOLVER
solves equations or sets of equations that
cannot be solved by the Direct Solver alone.
DESCRIPTION:
The Iterative Solver has to be used for
solving equations or sets of equations which
cannot be solved by the simple substitution,
inversion and evaluation performed by the
Direct Solver. In order to invoke the
Iterative Solver, one or more unknown
variables must be assigned guess values
which temporarily play the role of inputs.
The additional inputs make some equations
overdefined (i.e., they cause errors inter-
nally). The Iterative Solver manipulates the
guess values, and calls the Direct Solver
repeatedly until each of the error terms is
reduced below the Comparison Tolerance.
USAGE:
- Make sure that your problem is well-defined,
i.e. there are no fewer independent
equations than unknowns.
- Determine which variables remain unsolved
after applying the Direct Solver, and which
of them, if known, would trigger solving the
rest of the equations (even at the expense of
causing inconsistencies); select as few of
them as needed.
- Type G in the Status field and a guess value
in the Input field of the selected variables.
- Press F9 .
NOTE:
The Iteration Count and Convergence Factor are
displayed on the Prompt/Error line during
iteration.
019
RULE SYNTAX
An UNCONDITIONAL RULE has the form:
<expression> = <expression>
EXAMPLES:
1. a + b = c * d
2. remainder = mod(a,b)
3. theta = pi()^2 + r/2
4. y * (cos(x) - sin(y)) = ln(x)
5. x = 5
A CONDITIONAL RULE has the form:
IF <logical expr> THEN <unconditional rule>
EXAMPLES:
1. IF x >= 0 THEN y = sqrt(x)
2. IF and(w>0, given('z)) THEN q=ln(w)*z
3. IF evltd('a) THEN b=a*c+d
015
A FUNCTION REFERENCE has the form:
function name(arguments)
EXAMPLES:
1. pi()
2. ln(x)
3. cos(x*y)
4. max(a,b,c,d)
5. given('a,b*c,0)
NOTE:
In TK Solver Plus you can refer to both
built-in and user-defined functions. Also,
you can call user-defined List Functions, Rule
Functions and Procedure Functions.
026
TK NAME SYNTAX:
- TK Names can be up to 200 characters long and
can consist of letters (including interna-
tional letters, ASCII values 128-154 and 160-
165; and Greek letters, ASCII values 224-238),
digits and the special characters @ # $ % _
- TK Names CANNOT begin with a digit or contain
blanks.
- TK Names are used as variable names.
- TK Names preceded by an apostrophe are used as
symbolic values.
- TK Names are case-sensitive, i.e. the names
RESULT, Result, and result are all different
names (names of built-in functions are not
case-sensitive).
UNIT NAMES
Unit names can contain any typeable
characters, except for leading and trailing
blanks (embedded blanks are allowed).
DUPLICATE NAMES
- The same name CANNOT appear twice in the Name
Field column of a sheet; however, the same
name can be used for a variable and a unit.
014
BUILT-IN FUNCTIONS in FREETK can be classified
into the following groups:
- Mathematical Constants
- Trigonometric Functions
- Exponential and Logarithmic Functions
- Hyperbolic Functions
- Other Invertible Mathematical Functions
- Non-Invertible Mathematical Functions
- Complex Functions
- Boolean Functions
- Multi-Argument Functions
- TK-Specific Functions
006
MATHEMATICAL CONSTANTS:
PI() constant π, 3.141592653589793
E() constant e, 2.718281828459045
EXAMPLE: perimeter = 2*PI()*radius
018
TRIGONOMETRIC FUNCTIONS:
SIN(x) ASIN(x) R a d i a n s
COS(x) ACOS(x) ~~~~~~~~~~~~~
TAN(x) ATAN(x)
ATAN2(y,x) (4-Quadrant arc tangent of y/x)
SIND(x) ASIND(x) D e g r e e s
COSD(x) ACOSD(x) ~~~~~~~~~~~~~
TAND(x) ATAND(x)
ATAN2D(y,x) (4-Quadrant arc tangent of y/x)
EXAMPLES:
1. y - y0 = sin(x)/x
2. a/sind(α)=b/sind(ß)
NOTE: The inverse trigonometric functions
return principal values.
002
009
EXPONENTIAL AND LOGARITHMIC FUNCTIONS:
EXP(x) number e raised to the xth power
LN(x) natural (base e) logarithm of x
LOG(x) common (base 10) logarithm of x
EXAMPLE:
exp(-t^2)=phi
011
HYPERBOLIC FUNCTIONS:
SINH(x) ASINH(x)
COSH(x) ACOSH(x)
TANH(x) ATANH(x)
EXAMPLE:
(y1-y0)*k + 1 = COSH(k*(x1-x0))
020
OTHER INVERTIBLE MATHEMATICAL FUNCTIONS:
SQRT(x) positive square root of x
ROOT(x,n) nth root of x
ERF(x) error function
GAMMA(x) gamma function,
x-1 factorial for integer x>0
EXAMPLES:
1. ROOT(-512,3) returns -8
2. GAMMA(6) returns 120
020
NON-INVERTIBLE MATHEMATICAL FUNCTIONS:
SGN(x) -1 if x < 0
0 if x = 0
1 if x > 0
ABS(x) absolute value of x
INT(x) integer part of x
ROUND(x) x rounded to nearest integer
ROUND(x,y) x rounded to the nearest
multiple of y
CEILING(x) smallest integer ≥ x
FLOOR(x) largest integer ≤ x
MOD(x1,x2) remainder of x1/x2
DIVIDE(x1,x2) returns two values:
int(x1/x2) and mod(x1,x2)
STEP(x1,x2) 1 if x1 ≥ x2, 0 if x1 < x2
EXAMPLES:
1. CEILING(-9.7) returns -9
2. FLOOR(-9.7) returns -10
020
COMPLEX FUNCTIONS:
POWER((x1,x2),n)
calculates a complex number equivalent to
the complex number (x1,x2) raised to the
nth power
RCIS(x1,x2)
calculates a complex number in rectangular
form equivalent to the complex number in
polar form where x1 is the radius and x2
is the angle in radians
RCISD(x1,x2)
same as rcis, except x2 is in degrees
EXAMPLES:
1. POWER((5,2),3) returns (65,142)
2. RCISD(2,60) returns (1,sqrt(3))
034
BOOLEAN FUNCTIONS:
NOT(x) EQV(x,y)
AND(series) IMPLY(x,y)
OR(series)
where:
x,y ... logical expressions
series .. any number of logical expressions
EXAMPLES:
1. if or(k<3,k>5) then a=4*k
2. if and(not(w+y>15),w+y>0) then z=ln(w+y)
3. Answer = eqv(eqv(Tiger,Liar),not(Liar))
DEFINITIONS (1 = true, 0 = false):
┌────────────┬─────┬─────┬─────┬─────┐
│ x │ 1 │ 1 │ 0 │ 0 │
│ y │ 1 │ 0 │ 1 │ 0 │
╞════════════╪═════╪═════╪═════╪═════╡
│ NOT(x) │ 0 │ 0 │ 1 │ 1 │
│ AND(x,y) │ 1 │ 0 │ 0 │ 0 │
│ OR(x,y) │ 1 │ 1 │ 1 │ 0 │
│ EQV(x,y) │ 1 │ 0 │ 0 │ 1 │
│ IMPLY(x,y) │ 1 │ 0 │ 1 │ 1 │
└────────────┴─────┴─────┴─────┴─────┘
026
MULTI-ARGUMENT FUNCTIONS:
MAX(series)
returns largest value from the series
MIN(series)
returns smallest value from the series
SUM(series)
returns sum of values in the series
MEMBER(x,series)
returns 1 or 0 if the value of x is or is
not among the values in the series
POLY(x,series)
returns value of a polynomial function of x
with coefficients specified by the series of
values (highest-degree coefficient first,
coefficients of 0 for missing terms)
NPV(x,series)
returns net present value of the series of
payments, assuming interest rate x
EXAMPLES:
1. max(a,34,b,c,40)
returns 43 if a=12, b=35, and c=43
2. poly(x,1,0,0,1) returns 9 if x=2
3. poly(x,1,4,3) returns 143 if x=10
041
TK-SPECIFIC FUNCTIONS
VALUE(var) returns the value of variable var
Status functions, short form:
GIVEN(var) returns 1 or 0 if the variable var
is or is not assigned an input value
EVLTD(var) returns 1 if the variable var was
evaluated
KNOWN(var) returns 1 if the variable var is
known (i.e. given or evaluated)
where var is an expression that evaluates
into a symbolic value representing a variable
name; in the simplest case it may be just a
variable name preceded by an apostrophe.
EXAMPLES:
1. VALUE(a) (returns 12 if a='R and R=12)
2. if KNOWN('phi) then L=phi*rho
(the L=phi*rho rule applies if phi is known)
Status functions, long form:
GIVEN(vars,expr1,expr2)
KNOWN(vars,expr1,expr2)
EVLTD(vars,expr1,expr2)
where vars means one or more expressions
that evaluate into variable names.
If all the vars variables are given, known
or evaluated, the functions return expr1;
else, they return expr2.
EXAMPLES:
1. Rate = GIVEN('Rate,Rate,10)
(if Rate is assigned an input value, the rule
represents trivial identity Rate=Rate; else,
the rule assigns a default value Rate=10)
2. L = KNOWN('phi,phi*rho,0/0)
(if phi is known the rule becomes L=phi*rho;
if phi is not known the rule is ignored)
3. if GIVEN('Θ,'α,'ß,1,0) then L=Θ*R
(rule applies only if all Θ,α,ß are given)
016
VALUES are either NUMERIC or SYMBOLIC
NUMERIC values are any real number in standard
or exponential format with up to 16
significant digits and non-zero absolute value
between 1E-307 and 1E308, or zero.
EXAMPLES:
1. 1.09092 3. 18437560000000000000000
2. 6.672E-11 4. 0
Symbolic values are any TK names preceded by
an apostrophe.
EXAMPLES:
1. 'x 2. 'Bank 3. 'a_row_1
018
An EXPRESSION can be:
- a CONSTANT VALUE
- a VARIABLE name
- a FUNCTION REFERENCE
- an ARITHMETIC expression
- a RELATIONAL expression
- a LOGICAL expression
- a SYMBOLIC expression
EXAMPLES (in respective order):
1. 3409 or 'size
2. size
3. SQRT(speed)
4. (y2-y1)/(x2-x1)
5. a >= 34
6. AND(a <= 34,b > a)
7. GIVEN('Gas,Gas,'Oxygen)
011
A SYMBOLIC EXPRESSION can be:
- a symbolic value
- an expression that evaluates into a symbolic
value
EXAMPLES:
1. given('soup,'entree,'dessert,'OK,'Incomplete)
2. pet (if pet equals, say, 'baboon)
3. 'wood
4. '$100_note
5. 'DOG_and_PONY_show
011
A LOGICAL EXPRESSION can be:
- a relational expression
- a Boolean function
- any other expression that evaluates into
1 (true) or 0 (false)
EXAMPLES:
1. x <= y
2. or(x <= y,x >= w)
3. given('x)
4. abs(sgn(x))
018
A RELATIONAL EXPRESSION
has the form of two expressions linked by
a relational operator.
Relational operators are:
= equal
< less than
> greater than
<= =< less than or equal to
>= => greater than or equal to
<> >< not equal
Relational expressions evaluate into numerical
values 1 (true) or 0 (false).
EXAMPLE:
1. x*y <= u*v
2. animal <> 'dog
013
An ARITHMETIC EXPRESSION can be:
- two expressions linked by an arithmetic
operator (+ - * / ^). The constituent
expressions (operands) must evaluate into
numeric values.
- any expression preceded by unary + or - .
EXAMPLES:
1. a + b / (c * d)
2. (b > 3) + a
3. (a+b)^ln(x)
4. exp(cos(x)+sin(y))
5. -SIN(X)
012
COMPLEX ARITHMETIC:
A complex number, a+bi, is represented as a
pair of two real numbers (a,b).
When doing complex arithmetic, all operands
in the rule must be paired expressions. If a
function is used as an operand it must be
two-valued.
EXAMPLES:
1. (y,yi)=(a,0)*power((x,xi),3)+(b,0)
2. (a,b) = (c,d) * (e,f)
018
SHEETS
Communication between the user and TK is
conducted through the sheets. Each sheet
contains a different kind of information.
In FREETK there are three sheets:
- Variable Sheet
- Rule Sheet
- Unit Sheet
NOTE:
TK Solver Plus has six other sheets in
addition to the three sheets mentioned above:
- Function Sheet
- List Sheet
- Plot Sheet
- Table Sheet
- Numeric Format Sheet
- Global Sheet
014
The SELECT command (=)
displays any TK sheet in the current window.
USAGE:
- Type the Select command (=)
- Type the first letter of the sheet you want to
select, or move the cursor to the desired
sheet name in the Option Box and press ─┘.
NOTES:
- You can use the Select command from any sheet
or subsheet
- To display a new sheet in the opposite
window, use the Window command (/W)
024
SLASH COMMANDS (/):
Press / to bring up the Option Box, then press
the first letter, or move the cursor over the
desired command and press ─┘.
┌──────────────────┐ ┌────────────┐
│ Editing Commands │ │ I/O │
├──────────────────┤ ├────────────┤
│ B Blank fields │ │ S Storage │
│ C Copy fields │ │ P Print │
│ D Delete rows │ └────────────┘
│ I Insert rows │ ┌────────────┐
│ M Move rows │ │ Other │
╞══════════════════╡ ├────────────┤
│ Changing Display │ │ E Examine │
├──────────────────┤ │ R Reset │
│ W Window │ │ Q Quit │
└──────────────────┘ └────────────┘
NOTES:
- Use the Help facility to find more information
on specific commands; e.g. /S F1 gives you
help on the Storage command; or press /, move
the cursor over "Storage" and press F1.
- The Function Keys duplicate some of the slash
commands with one keystroke.
016
EDITING COMMANDS
╔══════╤═════════════════════════════════════╗
║ F5 │ Edit Field: make changes in a field ║
╟──────┼─────────────────────────────────────╢
║ /B │ Blank a specified block of fields ║
╟──────┼─────────────────────────────────────╢
║ /D │ Delete a specified block of rows ║
╟──────┼─────────────────────────────────────╢
║ /I │ Insert blank lines in a specified ║
║ │ block of rows; Ins inserts one line ║
╟──────┼─────────────────────────────────────╢
║ /C │ Copy a specified block of fields ║
╟──────┼─────────────────────────────────────╢
║ /M │ Move a specified block of rows ║
╚══════╧═════════════════════════════════════╝
014
The BLANK command (/B)
blanks out a block of fields in a single
column.
USAGE:
- Move the cursor to the first item you want
blanked and type /B
- Move the cursor to highlight the block of
fields you want blanked
- Press ─┘
NOTE:
- Use the Arrow keys or , and Home, End,
PgUp or PgDn keys to move the cursor
019
The COPY command (/C)
copies a block of fields in a single column
to another location.
USAGE:
- Move the cursor to the first field to copy
- Type /C
- Move the cursor to highlight the block of
fields to be copied
- Press ─┘
- Move the cursor to the desired location to
begin copying the defined block
- Press ─┘
NOTES:
- Use the Arrow keys, and Home, End, PgUp or
PgDn keys to move the cursor
- COPYING INFORMATION INTO A FIELD OVERWRITES
THE PREVIOUS CONTENTS OF THE FIELD
014
The DELETE command (/D)
deletes a block of rows you specify.
USAGE:
- Move the cursor to any location in the first
row you want deleted
- Type /D
- Move the cursor to highlight the block of
rows you want deleted
- Press ─┘
NOTE:
- Use the Arrow keys or , and Home, End,
PgUp or PgDn keys to move the cursor
018
The EDIT FIELD command (F5)
The in-field editor is invoked in the field
marked by the cursor when:
- you type F5 or Ctrl-E.
- FREETK detects an error in attempted entry.
WHEN IN THE EDITOR:
- Move the cue with the Arrow or Tab keys
- Add characters by typing them at the location
marked by the cue
- Delete characters to the right of the cue
with the Delete key (Del)
- Delete characters to the left of the cue with
the Backspace key (──)
- Enter the changed contents by pressing ─┘
- Exit the Editor without making any changes by
pressing F2 or Ctrl-Break
016
The INSERT command (/I)
inserts blank row(s) in the current sheet.
USAGE:
- Move the cursor to the row where you want to
start inserting.
- Type /I.
- Move the cursor to highlight the number of
rows you want to be displaced by blank rows.
- Press ─┘.
NOTES:
- The row marked by the cursor and all the rows
below it are displaced downward, but the
cursor remains in the same place.
- Press the Ins key to insert a single row.
025
The MOVE command (/M)
moves a specified block of rows.
USAGE:
- Move the cursor to the first row to be moved
- Type /M
- Move the cursor to highlight the block of
rows you want to move
- Press ─┘
- Move the cursor to the destination row where
you want to place the highlighted block
- Press ─┘
NOTES:
- Use the Arrow keys or , and Home, End,
PgUp or PgDn keys to move the cursor
- The Move command places the first row of the
specified block in the destination row and the
rest of the block in the following rows.
- Existing row(s) at and below the destination
row are displaced to make room; they move
upward if the block is moved down, and
downward if the block is moved up.
- Blank rows move the same way as if they were
filled.
025
The PRINT command (/P)
prints a block of rows from a TK sheet to
a printer.
USAGE:
- Move the cursor to the sheet and row where
you want printing to begin
- Move the cursor to highlight the rows you
want to print
- Press ─┘
NOTES:
- Use the Arrow keys or , and Home, End,
PgUp or PgDn keys to move the cursor
- The block is momentarily displayed on the
screen while it is being printed
- Ctrl-Break can be used to stop printing.
- This command is more useful in the full TK
Solver Plus where it is possible to define
printer settings on the Global Sheet and/or
to save the specified rows under a chosen
filename. Missing these options in FREETK,
you may prefer to dump the screen using PrtSc.
016
The QUIT command (/Q)
USAGE:
- Type /Q
- Type Y to confirm the Quit command, or
- Type N or press F2 to cancel the Quit command
NOTES:
- If you want to clear information from the
sheets without leaving FREETK, use the Reset
command (/R).
- WHEN YOU QUIT TK, THE INFORMATION IN THE
CURRENT SHEETS IS LOST. If you want to save
what you have done before you leave FREETK,
use the Save option of the Storage command (F4
or /SS) before quitting.
021
The RESET command (/R) has three options:
V (Variables) clears all input and output
values from the Variable Sheet and Variable
Subsheets (the First Guess values are not
affected).
S (Sheet) clears the current sheet or subsheet.
A (All) clears all sheets and subsheets.
USAGE:
- Type /R
- Type V, S or A to select the option you want
- Type Y to confirm or N to cancel the Reset
NOTES:
- NOTHING WILL STOP A CONFIRMED RESET
- Instead of pressing V, S or A and Y or N, you
may move the cursor in the Option Box to the
appropriate position and press ─┘.
- Use the Quit command (/QY) rather than Reset
if you want to leave FREETK
018
The STORAGE command (/S)
loads, saves and deletes files from the disk.
┌───┬─────────────────────┐
│ L │ Load TK File │
│ S │ Save Model │
│ V │ Variables Save │
│ U │ Units Save │
│ D │ Delete Any File │
└───┴─────────────────────┘
USAGE:
- Type /S and the first letter of the option
- Respond to any additional prompts
(Press F2 or Ctrl-Break to cancel the Storage
command without taking any action)
NOTES:
- F3 is equivalent to /SL.
- F4 is equivalent to /SS.
053
DISK INDEX
lists disk files available to the current
Storage command option.
USAGE:
- Type /S followed by any option character
(You can press F3 instead of typing /SL
or press F4 instead of typing /SS).
- Type a drive designator and pathname if
needed.
- Type a partial filename with wildcards if you
want to limit the display to related
filenames.
- Press ─┘ to display the Disk Index.
- Move the cursor to the row of the desired
file.
- Press ─┘.
NOTES:
- If the desired file is not listed you will
have to press F2 to exit the Disk Index
and start over.
- The Disk Index displays only files with
.TK extension for all Storage options, except
the Delete option (/SD) which displays files
with any extension.
- The Disk Index displays also the names of
subdirectories. You can dive into a
subdirectory by pressing > and return to the
parent directory by pressing < .
To load multiple files:
- Access the Disk Index with F3 ─┘.
- Type numbers in the Selection column to
specify the order of loading (you can change
the order by typing new numbers, or 0 to
blank a selection).
- Press ─┘.
To delete multiple files:
- Access the Disk Index with /SD ─┘.
- Type numbers in the Selection column to
specify the order of deletion (you can change
the order by typing new numbers, or blank the
selection by typing 0).
- Press ─┘.
- FREETK will ask for confirmation on each
deletion.
035
The LOAD option (F3 or /SL)
USAGE:
- Press F3 or type /SL.
- Type a drive designator and pathname if
needed.
- Type a filename, or access the Disk Index
and move the cursor to the row of the
filename.
- Press ─┘.
NOTES:
- If FREETK is not reset first, contents of new
model are appended to end of current model.
- Values from new model replace current values
of duplicate variables.
- Duplicate rules and unit conversions are
repeated.
- A model can be loaded right after TK is
started by supplying the model name as an
argument from DOS. For example:
FREETK LOAN ─┘
will start FREETK and then load the model
LOAN.
- If you load a TK model that has more
variables, units, or rules than FREETK can
accommodate, FREETK will only load as many
lines from each sheet as are allowed by
FREETK and give the message "Incomplete
load" (See "Limits of FREETK"). TK Solver
Plus does not have these limitations.
- If you load a TK model that contains rules
that cannot be understood by FREETK, those
rules will be marked with the unparsed-sign %
and ignored.
018
SAVE OPTIONS:
- Save MODEL: Saves the entire model to a file.
- Save VARIABLES: Saves only the Variable Sheet
to a file.
- Save UNITS: Save only the Unit Sheet with
selected unit conversions to a file.
NOTE:
TK Solver Plus has eight other save options,
in addition to the three mentioned above:
- Function Save
- Numeric Format Save
- Plot Save
- Table Save
- DIF Save
- WKS Save
- ASCII Save
- Configuration save
018
The SAVE option (F4 or /SS)
USAGE:
- Press F4 or type /SS
- Type a drive designator and pathname if needed
- Type a filename or, if you want to overwrite a
file, access the Disk Index
- Press ─┘
NOTES:
- FREETK adds the .TK extension to filenames
saved under this option if no other extension
is specified
- If you use the Disk Index but find no
file to overwrite, you must start over (F2)
- See the Help screen on the Storage command for
information on saving parts of a model rather
than the whole model
016
The SAVE VARIABLES option (/SV)
saves the current Variable Sheet and Variable
Subsheets in a TK file.
USAGE:
- Type /SV
- Type a drive designator and pathname if needed
- Type a filename or, if you want to overwrite a
file, access the Disk Index
- Press ─┘
NOTES:
- FREETK adds the .TK extension to the filenames
if no other extension is specified
- If you use the Disk Index but find no file
to overwrite, you must start over (F2)
015
The SAVE UNITS options (/SU)
saves the current Unit Sheet in a TK file.
USAGE:
- Type /SU
- Type a drive designator and pathname if needed
- Type a filename or, if you want to overwrite a
file, access the Disk Index
- Press ─┘
NOTES:
- FREETK adds the .TK extension to the filenames
if no other extension is specified
- If you use the Disk Index but find no file
to overwrite, you must start over (F2).
016
The DELETE option (/SD)
deletes files from disk.
USAGE:
- Type /SD
- Type a drive designator and pathname if needed
- Type the filename, or access the Disk Index
to mark the file(s) to be deleted
- Press ─┘
- Confirm the deletion(s) by typing Y
NOTES:
- The Delete option can delete any kind of file,
not just TK files
- See the Help screen on the Disk Index for
information on multiple deletions
014
OVERWRITING A FILE
means saving new information in the file in
place of old information.
OVERWRITING DESTROYS THE OLD CONTENTS OF A FILE:
- If you want to replace the old information
with the new information, confirm the command
by typing Y. This destroys the old contents
of the file.
- If you want to preserve the old file, type N
to cancel the Storage command. Save the new
file under another filename.
022
The WINDOW command (/W)
controls the number of windows on the screen
(one or two) and determines which sheet is
displayed in the other window.
To change the display from two windows to
a SINGLE window:
- Place the cursor on the sheet you want to
retain
- Press F6, or type /W1
To split the screen into TWO windows and/or to
display any sheet in the OTHER window:
- Type /W
- Type the first letter of the sheet you want
displayed in the other window (or move the
cursor in the Option Box to desired sheet and
press ─┘)
NOTE:
- To display a different sheet in the current
window, use the Select command (=) instead of
the /W command
018
The SOLVE command (F9)
solves a model with the Direct or Iterative
Solvers and displays the results in the Output
fields of the Variable Sheet.
USAGE:
- Assign the known values of input and/or guess
values for variables in the Variable Sheet.
- Press F9
NOTES:
- TK applies the Iterative Solver only if you
have provided guess values for one or more
variables (by typing G in the Status field on
the Variable Sheet or entering a First Guess
value in the Variable Subsheet)
- The Solve command may be used from anywhere
in FREETK
014
PARSER ERROR
This error should not have occurred.
REMEDIAL ACTION:
- Write down everything that might relate to
this problem; copy the offending rule or
expression and/or dump the screen to the
printer by pressing [PrtSc].
- If a rule entry was attempted, put a " in
front of it and press [Enter]. Else, exit
the editor pressing F2. In any case save
the current model to a disk.
- Notify UTS (call 1-800-HELP-UTS).
011
MISSING OPERAND
CAUSE:
Attempting to enter a rule or expression
which contains a dangling operator, equal
sign, or other symbol.
SOLUTION:
The cue points to the problem spot. Edit the
entry so that each operator has a name, value,
or valid expression on either side of it.
010
MISSING OPERATOR
CAUSE:
Attempting to enter a rule or expression
which contains two parenthetical expressions
with no operator between them.
SOLUTION:
Edit the entry so that adjacent parenthetical
expressions are related by an operator.
010
INVALID SYMBOLIC VALUE
CAUSE:
You attempted to enter an apostrophe followed
by a character string which is not a valid TK
name.
SOLUTION:
Edit the entry to replace the invalid symbolic
value with a valid symbolic value.
009
EXPECTED OPERATOR NOT FOUND
CAUSE:
You attempted to enter a rule that contains an
invalid TK expression, i.e. the expression is
missing an operator between two operands.
SOLUTION:
Change the expression so that it is valid.
017
UNDEFINED FUNCTION
CAUSES:
- You entered an undefined function name
immediately preceding a left parenthesis.
- You entered a variable name immediately
preceding a left parenthesis.
SOLUTIONS:
- Edit the expression to add an operator
between the variable name and the left
parenthesis.
NOTE:
- In TK Solver Plus, you would have the
option to define your own function in
the Function Sheet.
009
INVALID FUNCTION NAME
CAUSE:
You entered an invalid TK name immediately
preceding a left parenthesis.
SOLUTION:
Specify a valid function name when referring
to a function.
011
TOO MANY FUNCTION ARGUMENTS
CAUSE:
Attempt to enter a rule or expression that
contains a function reference with more
arguments than the definition of the
function specifies.
SOLUTION:
Edit the entry so that the function reference
has the correct number of arguments.
011
TOO FEW FUNCTION ARGUMENTS
CAUSE:
Attempt to enter a rule or expression that
contains a function reference with less
arguments than the definition of the
function specifies.
SOLUTION:
Edit the entry so that each function has the
correct number of arguments.
010
NUMBER OUTSIDE NUMERIC RANGE OF PROGRAM
CAUSE:
You attempted to enter an input value or a
rule with a value whose absolute value is
greater than 1E308.
SOLUTION:
Edit the input value or the rule so that all
values fit the numeric range of FREETK.
012
COMPLEX ARGUMENT FOUND WHERE REAL ARGUMENT
EXPECTED
CAUSE:
Using a pair of numbers (complex number) or an
expression which returns a complex result as
an argument of a function requiring real
number argument(s).
SOLUTION:
Supply the real number argument to the
function where it is required.
015
EXPRESSION TOO COMPLICATED
CAUSE:
You attempted to enter an expression with too
many pending operations or operands, or a rule
that contains such an expression.
SOLUTION:
Edit the expression to reduce the number of
pending operations or operands and enter the
new rule or expression.
NOTE:
The cue indicates the point at which FREETK
could no longer handle the expression
010
INVALID COMPLEX COMPUTATION
CAUSE:
Attempting to enter in a value field an
expression which includes complex numbers.
SOLUTION:
Enter only numeric value or symbolic value
or an expression that evaluates into a
single value.
010
IF CLAUSE IN EXPRESSION
CAUSE:
Attempting to enter a conditional clause or
rule into a field which accepts only evaluable
expressions.
SOLUTION:
Enter only an expression which evaluates to an
acceptable value.
016
MIXED REAL AND COMPLEX OPERANDS
CAUSE:
An expression must not have both single and
paired expressions as operands to the same
operator.
SOLUTION:
Edit the expression or rule so that it
contains only single operands or only
paired (complex) operands.
NOTE:
As an exception, POWER requires the first
argument to be a complex number, and the
second to be a single expression.
010
MISPLACED COMMA
CAUSE:
Attempting to enter a rule or expression which
contains a comma between values or names that
are neither function arguments nor the real
and imaginary components of a complex number.
SOLUTION:
Edit the entry to remove any extraneous comma.
009
MISSING SYMBOLIC VALUE
CAUSE:
Specifying an empty symbolic value, i.e.
having an apostrophe not followed by name.
SOLUTION:
Edit the rule or expression so that each
apostrophe precedes a valid TK name.
011
OUT OF MEMORY
CAUSE:
FREETK ran out of memory while loading
a file or parsing an entry.
SOLUTION:
Save information with the Storage command
and then clear some or all of the model
with the Reset command (/R) or Delete
command (/D).
011
INVALID RANGE SPECIFIED
CAUSE:
Attempting to specify a block for blanking,
moving, inserting or copying which includes
the top area of the sheet.
SOLUTION:
When specifying the range (block), do not
include the fields in the fixed area of the
sheet.
009
BLOCK INCLUDES FIELD THAT CANNOT BE BLANKED
CAUSE:
You attempted to blank a block of fields that
included one or more fields that cannot be
blanked or left blank.
SOLUTION:
Leave the field as is.
018
NOT ENOUGH ROWS AVAILABLE ON SHEET
CAUSES:
- Attempting to insert row(s) in a sheet so
that it would have more than 32 lines in it
(16 lines in Rule Sheet).
- Attempting to use the Move command in a sheet
that is full.
SOLUTIONS:
- Delete unnecessary lines, if any, before
inserting new line(s) or moving line(s).
- If possible, combine lines to make room for
new lines.
NOTE:
- The limitation of a specific number of rows
in a sheet does not apply to full TK Solver.
024
INCOMPLETE SAVE
CAUSES:
- When you used the /SS (F4) command it caused
a disk error. (Disk errors may be caused by
saving to a faulty disk drive, a damaged
diskette, a write-protected diskette, or a
diskette that is full.)
- You pressed Ctrl-Break during the save
procedure.
SOLUTIONS:
- If the error has occurred because the
Ctrl-Break key was pressed, begin the Storage
command again and allow the save procedure to
be completed.
- If the problem is elsewhere, check the disk to
determine whether it is full or write-
protected. Try saving the file to a different
disk drive or diskette.
- The incomplete save may have created a partial
file on the first diskette. Delete this file
using the /SD command or an appropriate
command at DOS level.
026
INCOMPLETE LOAD
CAUSES:
- Attempting to load a damaged file with the /SL
(F3) command.
- Attempting to load a TK file which is not
compatible with the running version of FREETK.
- You pressed the Ctrl-Break key during the
loading procedure.
- Attempting to load a model that contains more
lines for the Variable, Rule, or Unit Sheet
than allowed in FREETK. (Excess ignored.)
SOLUTIONS:
- If the file has been damaged, the load is
completed up to the damaged section.
Information that has been damaged must be
recreated.
- If the error occurred because Ctrl-Break was
pressed, reset FREETK (/RAY) and load the
file again; allow the load procedure to be
completed.
NOTE:
The limitation of a specific number of rows
in a sheet does not apply to full TK Solver.
021
NO FILES FOUND WITH MATCHING FILENAMES
CAUSES:
You attempted to view the files on the disk
with the Disk Index when there were either:
- No files available for the current Storage
command option
- No filenames matching the wildcard you
specified
- No diskette found in the specified drive
SOLUTION:
Start the Storage command again and:
- Use a different wildcard specification to look
for files on the disk
- Type a complete filename instead of looking at
the Disk Index
- Type a path to a subdirectory containing files
relevant to the Storage command option before
looking at the Disk Index
- Insert a diskette into the specified drive.
012
NOT A VALID STORAGE FILE
CAUSES:
- Attempting to load a file that is not a valid
TK model file.
- Attempting to load a TK model file that has
been incorrectly changed with a text editor.
SOLUTIONS:
- Specify a filename for a valid TK model file.
- Modify the file again with a text editor to
make it a valid TK model file.
012
OBJECT DELETED; SUBSHEET NO LONGER ACCESSIBLE
CAUSE:
You attempted an action in a subsheet which
does not exist anymore. (When a variable is
deleted, the associated subsheet is also
deleted, even if the subsheet still appears
on the screen in the other window.)
SOLUTION:
Create a new variable. Dive to the new
subsheet to enter information.
010
FIELD RESERVED FOR OUTPUT
CAUSE:
Attempting to enter a value in the Output
field on the Variable Sheet or on a Variable
Subsheet.
SOLUTIONS:
- Leave the field as is.
- Enter a new value in an Input field.
012
OUT OF MEMORY
CAUSE:
Any action which uses up the remaining memory
available for running FREETK results in an
error and cancellation of the action in
progress.
SOLUTION:
Save information with the Storage command
(/SS) and then clear some or all of the model
with the /D or /R command.
009
FIELD CANNOT BE BLANKED
CAUSE:
You attempted to enter blanks in a FREETK
field that cannot be left blank.
SOLUTIONS:
- Leave the field as is
- Enter a non-blank value
015
ACTION COMMAND (!) HAS NO EFFECT ON THIS SHEET
CAUSE:
You attempted to use the Action command (!)
from the Unit Sheet.
SOLUTIONS:
- Press F9 to invoke the solvers.
- Go to the Variable Sheet or Rule Sheet and
press ! .
NOTE:
In TK Solver Plus, the Action command has
additional uses in sheets which are not
available in FREETK.
011
UNDEFINED VARIABLE
CAUSE:
You attempted to enter the name of a variable
that does not exist or does not have a value.
SOLUTIONS:
- Edit the variable name so that it refers to a
defined variable name.
- Press F2 to cancel and try again.
011
EXPRESSION CANNOT BE EVALUATED
CAUSES:
- Attempting to enter an unevaluable expression
on the Prompt Line during /EE or /EC.
- Attempting to enter an unevaluable expression
in a value field (e.g. 0/0).
SOLUTION:
Enter only valid TK expressions for
evaluation.
012
DISK INDEX: NOT ENOUGH MEMORY TO CONTINUE
CAUSE:
Using the Disk Index to view the contents
of the disk exhausted the memory available
to FREETK.
SOLUTION:
Save all or part of the model with F4 without
using the Disk Index so you can delete all
or part of the model to free up memory to
allow use of the Disk Index.
011
NO FILES SELECTED
CAUSE:
Pressing ─┘ while pointing to a subdirectory
in the Disk Index.
SOLUTION:
Start the Storage command again and, when the
cursor points to a subdirectory, use the Dive
command > to see the files stored in that
subdirectory.
010
VARIABLE DOES NOT EXIST
CAUSE:
You attempted to enter a nonexistent
variable for evaluation when using the
Variable option of the Examine command.
SOLUTION:
Repeat the command and enter the name of an
existing variable.
014
NO VARIABLE NAME
CAUSE:
Attempting to enter a "G" in the Status field
of a variable when there was no name in the
Name field.
SOLUTIONS:
- Enter a rule containing the variable in the
Rule field on the Rule Sheet before using the
Status field.
- Enter the variable name into the Name field on
the Variable Sheet before using the Status
field.
008
WARNING: PARSER ERRORS DETECTED DURING LOADING
CAUSE:
Loading a model with invalid rules. Those
rules that are left unparsed are marked with
a % sign in the Status field. These rules
should be edited and modified before the model
is used.
009
INVALID CONFIGURATION FILE
CAUSE:
The FREETK.CFG file is not set up correctly.
SOLUTION:
Refer to the related topic "Configuration"
for the correct format and contents of the
configuration file.
013
INVALID FILE SPECIFICATION
CAUSE:
A string of up to 200 characters may be
entered as a filename, but the length and
validity of a file specification is usually
determined by the operating system of the
computer.
SOLUTIONS:
- Check your operating system manual for a valid
filename.
- Enter a valid filename.
012
FILE DOES NOT EXIST
CAUSE:
Attempting to load a file that does not exist
in the specified directory.
SOLUTIONS:
- Specify an existing filename (and a pathname
if applicable) for the file to be loaded
- Access the Disk Index to view the files
available in the current directory and
subdirectories
007
FILE ALREADY EXISTS
CAUSE:
Same filename has been used before.
SOLUTION:
Try entering another filename
011
FILE IS PROTECTED
CAUSES:
- You attempted a storage action to a filename
that is protected by the operating system.
- You attempted a storage action specifying
a directory rather than a file name.
SOLUTIONS:
- Specify another filename or drive specifier.
- Insert another diskette.
011
DISK IS PROTECTED
CAUSE:
Attempting to save a model to a
write-protected diskette.
SOLUTIONS:
- Take the write-protection tab off the
diskette, so it can be written to.
- Save to a different diskette which is not
write protected.
012
DISK SPACE OR DISK DIRECTORY FULL
CAUSES:
- Attempting to save to a disk that has too
little space left to store the file.
- The disk already contains the maximum number
of files allowed on the disk by your operating
system.
SOLUTIONS:
- Delete some files first.
- Save the file to a different disk.
001
DISK RELATED SOFTWARE ERROR
014
NO SUCH DEVICE OR DEVICE NOT READY
CAUSE:
Most likely you tried to save a file to a
drive that was not ready (no diskette, or
drive door not closed).
SOLUTIONS:
- Check the disk and the drive.
- Check the drive specifier in the file
specification.
- See your operations manual for further
information about device names and drive
specifiers.
013
DISK DATA OR I/O ERROR
CAUSES:
- You attempted an action that caused a hardware
read/write error.
- You attempted to use a worn or damaged
diskette.
SOLUTION:
Try another diskette; refer to your hardware
operations manual for hardware diagnostic
tests; note this message and contact your
computer dealer.
010
DISK HARDWARE ERROR
You attempted an action that caused a hardware
read/write error.
SOLUTION:
Try another diskette; refer to your hardware
operations manual for hardware diagnostic
tests; note this message and contact your
computer dealer.
010
END OF FILE
CAUSE:
You attempted to load an incomplete or
improperly formed file with the Load file
(/SL) option of the Storage command.
SOLUTION:
Try creating a new copy of the file and
repeating the load action.
014
LINE TOO LONG
CAUSES:
- You attempted to load a file that contains a
line that is too long.
- You attempted to load an improperly formatted
file.
- A line end character was removed with a text
editor.
SOLUTIONS:
- Press Ctrl-Break to cancel the load action.
- Try to recreate the file and reload it using
the same machine.
010
FILENAME CONTAINS WILDCARD
CAUSE:
Wildcards can not be used in filenames in
FREETK.
SOLUTION:
If you want a directory listing when saving
or loading a file, press ─┘ when prompted
for a filename.
010
DEVICE IS NOT MOUNTED
CAUSE:
You attempted a print or storage action to a
device name that is not connected.
SOLUTION:
See your operations manual for further
information about device names and drive
specifiers.
004
UNKNOWN ERROR
CAUSE:
This error should not have occurred.
007
SOLUTION:
- Dump the screen to a printer and/or write down
everything that might relate to this problem.
- Save the current model to a disk right away
if possible.
- Notify UTS (call 1-800-HELP-UTS).
006
SYSTEM ERROR
CAUSE:
This error message appears as the result of
an unknown program error that interfered with
the evaluation of an expression.
011
SOLUTIONS:
- Review the offending rule and other rules and
input values to see what caused the error.
- If the error occurred during iteration: change
the guess value(s) and/or review the strategy
of using the Iterative Solver.
- If the error occurred when entering or exami-
ning an expression: edit the expression or
examine the ingredients or make a new entry.
008
DIVISION BY ZERO
CAUSES:
- Attempting to enter an expression the
evaluation of which would involve division
of a non-zero number by zero.
- Attempting to divide a non-zero number by
zero in the process of solving a rule.
011
EXPONENT OVERFLOW
CAUSE:
Arithmetic operation or function evaluation
produced a value that is outside the numeric
range of FREETK, i.e. its absolute value is
greater than 1E308.
NOTE:
Exponent underflow is ignored (the result is
taken as zero).
005
ARGUMENT ERROR
CAUSE:
The function argument supplied to the function
is outside the domain of the function.
005
SQRT: ARGUMENT ERROR
CAUSE:
Attempt to take square root of negative
argument.
005
LOG: ARGUMENT ERROR
CAUSE:
Attempt to take logarithm of zero or negative
argument.
008
EXPONENTIATION: ARGUMENT ERROR
CAUSE:
Attempt to perform the direct or inverse
exponentiation operation (^) with negative
argument and fractional exponent combined
(e.g. evaluating (-32)^.2 or solving y=x^2
for x when y is negative or zero).
006
ASIN: ARGUMENT ERROR
CAUSE:
Attempt to evaluate arc sine of an argument
with absolute value greater than 1.
(SIN inverse may be responsible.)
006
ACOS: ARGUMENT ERROR
CAUSE:
Attempt to evaluate arc cosine of an argument
with absolute value greater than 1.
(COS inverse may be responsible.)
007
ASINH: ARGUMENT ERROR
CAUSE:
Attempt to evaluate hyperbolic arc sine of
an argument with absolute value greater
than 1E154.
(SINH inverse may be responsible.)
007
ATANH: ARGUMENT ERROR
CAUSE:
Attempt to evaluate hyperbolic arc tangent
with an argument with absolute value greater
than 1.
(TANH inverse may be responsible.)
006
ATAN2: ARGUMENT ERROR
CAUSE:
Known argument and function values are not
consistent with each other, e.g. z=0 and
y=1 in z=atan2(y,x).
007
VALUE: ARGUMENT ERROR
CAUSE:
Attempt to use built-in function VALUE with
an argument which is not a symbolic value, or
which does not evaluate into a name of an
existing variable.
005
MOD: ARGUMENT ERROR
CAUSE:
The second argument of the MOD function
evaluates to zero.
007
ACOSH: ARGUMENT ERROR
CAUSE:
Attempt to evaluate hyperbolic arc cosine
of an argument with absolute value greater
than 1E154.
(COSH inverse may be responsible.)
005
LN: ARGUMENT ERROR
CAUSE:
Attempt to take logarithm of zero or negative
argument.
009
POWER: ARGUMENT ERROR
CAUSE:
The second argument supplied to the function
was not an integer.
SOLUTION:
Modify the model so that the second argument
evaluates into an integer.
001
GIVEN: ARGUMENT ERROR
010
CAUSES:
- An argument specifying a variable to be
examined does not evaluate into a symbolic
value.
- Attempt to use two arguments.
SOLUTIONS:
- Check and modify the arguments.
- Use 1, 3 or more arguments.
006
ERF: ARGUMENT ERROR
CAUSE:
Attempt to evaluate an inverse erf of an
argument with an absolute value greater
than 1.
007
GAMMA: ARGUMENT ERROR
CAUSES:
- Attempt to evaluate gamma function of
zero or negative argument.
- Attempt to evaluate the inverse gamma
function of a value less than .886 .
001
KNOWN: ARGUMENT ERROR
001
EVLTD: ARGUMENT ERROR
006
INVALID BOOLEAN ARGUMENT
CAUSE:
Attempt to evaluate a Boolean function or
inverse Boolean function of an argument or
arguments other than 0 or 1.
005
INVALID SYMBOLIC COMPUTATION
CAUSE:
Attempt to perform a numeric operation on
a symbolic value, e.g. 3*'p or sin('q).
022
> ITERATION: DEPENDENCY ERROR
CAUSES:
- The number of independent equations in the
model is less than the number of unknowns.
- The error terms generated by guesses become
too small or too insensitive to small changes
in guess values.
SOLUTIONS:
- Check the choice of guess variables and/or
guess values.
- Check the number of independent equations vs.
the number of unknowns; modify the model and/
or reformulate the problem.
- Scale the problem up or down; review the
strategy of using the Iterative Solver.
NOTE: TK Solver Plus with the Comparison
Tolerance and Typical Value settable on the
Global Sheet offers additional means to
control the Iterative Solver.
004
SOLUTION ABORTED
CAUSE:
Ctrl-Break was pressed during solution.
012
OUT OF MEMORY (during iteration)
CAUSE:
There is no room accommodate additional
information generated and used by the
Iterative Solver.
SOLUTION:
Save information with the Storage command
and then clear some or all of the model
with the Reset command (/R) or Delete
command (/D).
023
> ITERATION: TOO MANY GUESSES
CAUSES:
- The number of error terms generated by
guesses is less than the number of guess
variables.
- Some of the error terms are too small (i.e.
they are within the Comparison Tolerance).
SOLUTIONS:
- Solve the problem with a reduced number of
guess variables.
- Change the guess values.
- Scale the problem up or down; review the
strategy of using the Iterative Solver.
NOTE: TK Solver Plus with the Comparison
Tolerance and Typical Value settable on the
Global Sheet offers additional means to
control the Iterative Solver.
016
> INCONSISTENT
CAUSE:
The marked rule was checked by the Direct
Solver and found in error. This happens most
often when all variables in an equation have
have input values or were evaluated from
other equations, and the difference between
the left- and right-hand side is greater than
the Comparison Tolerance.
SOLUTION:
- Blank the input value of a variable marked
'Overdefined' or some other variable that
may be responsible.
- Delete, cancel or edit the offending rule.
016
> OVERDEFINED
CAUSE:
The marked variable appears in an equation
that was found inconsistent. The variable
may be directly or indirectly responsible
for this condition, which usually means that
the problem was overdefined.
SOLUTION:
- Blank the input value of the offending
variable (if assigned) or of any other
variable marked 'Overdefined' or some other
variable that may be responsible.
- Delete, cancel or edit the rule marked
'Inconsistent'.
035
GETTING STARTED
If you have never used TK before, print out
the file TUTORIAL.TXT and follow the
directions given in that file.
If, on the other hand, you have used TK
before, you may want to look at some of the
models that are supplied with the FREETK
package; for instance, LOAN.TK. You can
load the model using the Load command (F3).
It is also possible to load a model at the
same time you start up FREETK. For example,
from DOS you can type:
FREETK LOAN ─┘
which will start FREETK and then load the
model LOAN.
NOTES:
- Remember that the Help file has to be in the
current directory to be accessible.
- FREETK is compatible with TK!Solver and TK
Solver Plus, but if you load a model that
contains objects that cannot be understood
by FREETK (e.g. plots, lists, tables, user-
defined functions, etc.), FREETK will ignore
them. Also if you load a model containing
rules that cannot be interpreted by FREETK,
those rules will be marked with a % sign
(see "Load File").
- FREETK can be configured to your computer
system with a FREETK.CFG file (see
"Configuration").
- You may find it helpful to read through the
rest of the major topics in the Help Index
box.
044
CONFIGURATION OF FREETK
FREETK can be configured by modifying the
EXAMPLE.CFG text file that is provided with
the package. This ASCII file contains the
default settings and can be modified with a
text editor. The default settings are:
" TK Solver configuration file
Use Color: Yes
Slow Redisplay: Yes
Solid Line Headings: Yes
Bottom Prompt Line: Yes
USAGE:
- To change the configuration, edit EXAMPLE.CFG
and change the "Yes" to "No" for each setting
that you want to change. Then save the file
under the name FREETK.CFG.
- If the FREETK.CFG file is not found in the
current directory, FREETK will default to the
values above.
- If you have a color card, but use a monochrome
monitor, you should change the "Use Color"
setting to "No."
- "Slow Redisplay" set to "Yes" prevents snow
from appearing when using color cards with
memory which is not dual-ported. If your
color card can handle fast redisplay, then
change this setting to "No."
- If you use the screen-dump feature (shift
PrtSc) or the Print command to print parts of
the model to the printer, and your printer
cannot print graphics characters, "Solid Line
Headings" should be set to "No."
- If you are familiar with the command structure
of TK and you do not need the assistance of
the bottom prompt line, you may want to set
"Bottom Prompt Line" to "No."
- In TK Solver Plus the above configuration can
be done by modifying the values on the Global
Sheet and saving the values directly from the
program with a "Save configuration" command.
053
LIMITS OF FREETK
FREETK represents the central components of
TK Solver Plus, the equation solvers, complete
with an automatic unit conversion feature.
The purpose of FREETK is to offer the PC user
community at large the taste of rule-based
programming applied to numeric computation.
Available in FREETK are three out of nine
information sheets:
Rule Sheet - Variable Sheet - Unit Sheet
Present in TK Solver Plus but omitted here are
(User-defined) Function Sheet - List Sheet
Plot Sheet - Table Sheet - Global Sheet
Numeric Format Sheet
The names of missing sheets indicate the limits
of FREETK: TK Solver Plus works not only with
single values but also with lists of values,
it plots the results, it provides spreadsheet-
like tabular interface, it accepts global
settings, and it offers numeric formatting.
Most importantly, TK Solver Plus supports so-
called user-defined functions that are used
for handling empirical relationships, blen-
ding numeric and non-numeric information,
complementing TK with sequential programs
and, generally, turning it into an integrated
and open-ended problem-solving environment.
FREETK even without all these additional
features is a powerful equation processor
ready to handle countless real-life problems.
FREETK also has limits on the number of lines
that can be accessed on its three sheets:
1. Maximum of 32 lines on Variable Sheet.
2. Maximum of 16 lines on Rule Sheet.
3. Maximum of 32 lines on Unit Sheet.
4. Maximum of 32 entries in Disk Index.
(Use subdirectories if you have more than
32 files on your disk.)
In TK Solver Plus these limits are 32000.
Refer to the README.TXT, FTKINTRO.TXT and
REFCARD.TXT files for information on
TK Solver Plus and FREETK.
015
TOP LEVEL COMMANDS
└──┬─────────────┘
├──────── Function Keys
├──────── Slash Commands
└──────── Navigation Commands
Move the cursor over one of the Related Topics
below and press ─┘.
NOTES:
- If you need help on Help, press F1.
- If you ever need to get back to this screen:
Press F1 ─┘ (from within Help).
Press F1 F1 ─┘ (from FREETK).
019
FUNCTION KEYS
╔═════════════════════╦═══════════════════════╗
║ F1: On-Line Help (?)║ F2: Cancel Entry ║
╠═════════════════════╬═══════════════════════╣
║ F3: Load File (/SL) ║ F4: Save File (/SS) ║
╠═════════════════════╬═══════════════════════╣
║ F5: Edit (Ctrl-E) ║ F6: One-Window (/W1) ║
╠═════════════════════╬═══════════════════════╣
║ ║ ║
╠═════════════════════╬═══════════════════════╣
║ F9: Solve ║ ║
╚═════════════════════╩═══════════════════════╝
USAGE:
From any sheet, press the desired key and the
command (command sequence) will be executed.
NOTE:
F7, F8, and F10 are for displaying plots,
displaying tables, and List Solving,
respectively, in TK Solver Plus.
028
NAVIGATION COMMANDS:
─ Moves the cursor to the right
─ Moves the cursor to the left
Moves the cursor up one line
Moves the cursor down one line
──▌ Moves the cursor to the rightmost field
▐── Moves the cursor to the leftmost field
Home Moves the cursor to the top of the sheet
End Moves the cursor to the end of the sheet
PgDn Moves the cursor N-2 lines down
PgUp Moves the cursor N-2 lines up
(where N is the number of lines displayed
in the current window)
= Select Sheet command. It selects the
sheet to be displayed in the current
window.
; Switch command. If two windows are
displayed on the screen, the Switch
command moves the cursor between them,
otherwise it has no affect.
> Dive command. Brings up a relevant
subsheet in the current window.
< Return command. Brings back original
sheet or subsheet.
013
PROBLEM SOLVING WITH FREETK
involves three stages:
1. Bringing up the model either by loading an
appropriate TK file or by developing the
model (i.e. typing in the rules into the
Rule Sheet).
2. Formulating the problem (i.e. assigning
appropriate input or guess values to
selected variables in the Variable Sheet).
3. Solving the model by pressing F9.
017
The VARIABLE SHEET
contains information about the variables used
in the model. Each row can contain data
related to one variable.
There are VARIABLE SUBSHEETS containing more
information about each variable; items entered
into fields in the Variable Sheet are updated
simultaneously in corresponding fields in
Variable Subsheet.
ACCESS:
- Type =V to display it in the current window.
- Type /WV from one-window display to display
it in the second window.
- Use the Dive command (>) to see the Variable
Subsheet associated with a specific variable.
010
The RULE SHEET
contains the equations for a model. Each row
can contain one equation and its status (and,
optionally, a comment following a double
quote, " ).
ACCESS:
- Type =R to display it in the current window.
- Type /WR from one-window display to display
it in the second window.
010
The UNIT SHEET
contains definitions for conversions between
units of measurement used in a model. Each
row in the Unit Sheet defines a conversion
between two units of measurement.
ACCESS:
- Type =U to display it in the current window.
- Type /WU from one-window display to display
it in the second window.
030
UNIT SHEET FIELDS
FROM Field: Contains the first unit.
TO Field: Contains the second unit.
MULTIPLY BY Field: Contains the unit conversion
factor, i.e. number of second units equivalent
to a single first unit.
If left blank, a factor of 1 is assumed.
ADD OFFSET Field: Contains the value in the
second unit equivalent to a value of zero in
the first unit.
If left blank, an offset of 0 is assumed.
NOTE:
MULTIPLY BY and ADD OFFSET fields accept any
valid numeric value or expression.
EXAMPLES:
1. Conversion from degrees Celsius to degrees
Fahrenheit is defined by a conversion factor
of 1.8 (may be entered as 9/5) and an offset
value of 32.
2. Conversion from radians to degrees may be
defined by a conversion factor of 180/pi()
which evaluates into 57.2957795131 .
033
UNIT CONVERSION
The Unit Conversion feature in FREETK works as
follows:
- Each variable may be optionally assigned a
Calculation Unit and a Display Unit.
- All calculations are performed in Calculation
Units and the input and output values are
displayed in Display Units.
- The Display Units are defined in the Unit
Fields in the Variable Sheet.
- A Display Unit entered into a blank Unit Field
also becomes a Calculation Unit.
- Both Calculation and Display Units may be
changed in the appropriate fields in the
Variable Subsheets.
- When the Display Unit is changed the input or
output value is converted instantaneously.
- The conversion is performed according to the
unit conversion definitions in the Unit Sheet.
NOTES:
- The assigned Calculation Units must be
consistent with the usage of the variables in
the rules.
- The unit conversion may be defined indirectly.
For instance, if the conversions in/cm, ft/in
and m/cm are defined, the conversion between
ft and m is automatically defined.
- If the conversion between the Calculation
Unit and the desired Display Unit is not
defined in the Unit Sheet, a question mark (?)
appears in front of the value.
036
The EXAMINE command (/E) has three options:
Variable, Expression, and Copy.
The VARIABLE option
allows you to EXAMINE the value of a variable
when debugging the model or analyzing error
conditions.
USAGE:
- Type /EV.
- Enter variable name and press ─┘.
The EXPRESSION option
allows you to EXAMINE the value of an
expression when debugging the model or
analyzing error conditions.
USAGE:
- Type /EE.
- Type in the expression and press ─┘.
The COPY option
allows you to copy the field highlighted by
the cursor onto the Prompt/Error line.
Depending on contents, this text may be
evaluated as an expression immediately
or after editing.
USAGE:
- Type /EC.
- Type F5 for editing, if necessary
- Press ─┘ for evaluation
NOTE:
- The Expression option or Copy option can also
be used as a calculator: just type /EE or /EC
and the expression you want to evaluate.
020
STATUS Field
PURPOSE:
Shows the status of the variable and may be
used for changing the status. The default is
blank. A > symbol indicates that the vari-
able is involved in an error condition.
SELECTING OPTIONS:
Type into the Status field the first letter of
the option you want to apply:
I - current value will be assigned as input
(equivalent to entering that value in the
Input field)
O - current value will appear in the Output
field
B - blanks the Input or Output field
G - current value will be assigned as a guess
(this is a toggle switch)
016
INPUT Field
DESCRIPTION:
Contains the input value for a variable.
VALID ENTRIES:
- A numeric or a symbolic value.
- A syntactically correct expression that
evaluates to a numeric or a symbolic value.
NOTE:
If a variable is assigned units, its value
appears in the Display Unit. (If the con-
version between Display Unit and Calculation
Unit is not defined in the Unit Sheet, a ?
precedes the displayed value.)
008
NAME Field
DESCRIPTION:
Contains the name of a variable.
VALID INPUTS:
- TK name (NO DUPLICATES ALLOWED WITHIN A
NAME FIELD COLUMN ON A SHEET).
017
OUTPUT Field
DESCRIPTION:
Contains the output value of the variable if
the variable has one.
USAGE:
- FREETK uses the Output field for displaying
the solution results.
- An input value or a blanked (but internally
held) value may be moved to the Output field
by typing letter O in the Status field.
- If a variable is assigned units, its value
appears in the Display Unit. (If the con-
version between Display Unit and Calculation
Unit is not defined in the Unit Sheet, a ?
precedes the displayed value.)
023
UNIT FIELD, Variable Sheet
defines the Display unit used to display the
value of the variable.
USAGE:
- Typing a unit name into a blank Unit field
ALSO defines the Calculation unit.
- Typing another unit name changes ONLY the
Display unit.
- The Calculation unit may be changed in the
Variable Subsheet.
- When you change the Display unit, the
variable value changes instantaneously
provided that the conversion between the
Display and Calculation units is defined
directly or indirectly in the Unit Sheet.
If a conversion is not defined, a ? will
appear in front of the value.
- Blanking out the Unit field in the Variable
Sheet will blank out both the Display and
Calculation unit fields in the associated
Variable Subsheet.
010
The COMMENT Field
USAGE:
- Use for commenting your model.
- Accepts any typeable characters.
NOTE:
If you want to include or append a comment in
the Rule Sheet, precede the comment with a
double quote (").
018
FIRST GUESS Field
DESCRIPTION:
Contains a blank or the default guess value
you specify for the variable.
USAGE:
Serves for automatic assignment of the spe-
cified value as a guess and initiation of the
Iterative Solver. It works when the variable
is not assigned an input value, cannot be
evaluated by the Direct solver, and is not
assigned another guess value manually.
VALID INPUTS:
- A numeric value.
- An expression that evaluates into a numeric
value.
012
CALCULATION UNIT
The Calculation Unit may be assigned to a
variable by:
- entering its name in the Calculation Unit
Field of the associated Variable Subsheet, or
- entering its name into a blank Unit Field in
the Variable Sheet (in that case it becomes
a Display Unit as well).
See "Unit Conversion" for the role of
calculation units in FREETK.
013
DISPLAY UNIT
The Display Unit may be assigned to a variable
by:
- entering its name into the Unit Field in the
Variable Sheet (if the field is blank, then
the Display Unit becomes a Calculation Unit
as well), or
- entering its name into the Display Unit Field
of the associated Variable Subsheet.
See "Unit Conversion" for the role of display
units in FREETK.
019
The STATUS Field
shows the status of the rule:
- A blank indicates a successful solution of
that rule.
- An asterisk (*) indicates an unsolved rule.
- A C indicates that the rule is switched off.
- An error symbol (>) indicates an error
during the evaluation of the rule.
- A % indicates an unparsed rule. The rule
probably refers to a user-defined function
that was defined in TK!Solver or TK Solver
Plus.
USAGE:
- Place the cursor in the field to display an
explanatory message on the Status line. If
there is an error symbol > press F1 for
a help screen explaining the error.
- Press C to switch the rule off or on.
011
RULE Field
DESCRIPTION:
Accepts equations according to the
conventions for valid TK rules.
NOTE:
A Rule field can also contain a comment.
FREETK regards all text after a quotation mark
(") in a Rule field as a comment, not subject
to evaluation by the solvers.
030
COMPARISON TOLERANCE
DESCRIPTION:
The Comparison Tolerance (CT) and the Typical
value (TV) serve for checking the consistency
of rules. A rule is considered satisfied and
an equation is presumed to hold if either
RELERR ≤ CT or MABVAL ≤ CT * TV ,
where
relative error RELERR = ABSERR / MABVAL
absolute error ABSERR = abs(LHE-RHE)
maximum absolute value
MABVAL = max(abs(LHE),abs(RHE))
LHE,RHE are values of left-hand side and
right-hand side expressions.
The CT and TV parameters play important role
in controlling the Iterative Solver and
terminating the iteration upon successful
completion.
NOTE:
In FREETK CT = .000001 and TV = 1 .
In TK Solver Plus these parameters may be
changed on the Global Sheet, in order to
fine-tune the solvers to specific needs.
028
TYPICAL VALUE
DESCRIPTION:
The Typical Value (TV) in conjunction with
the Comparison Tolerance (CT) serves for
checking the consistency of rules, and, in
particular, for deciding on successful
completion of iteration.
A rule is considered satisfied and an
equation is presumed to hold if
max(abs(LHE),abs(RHE)) ≤ CT * TV
where LHE,RHE are values of left-hand and
right-hand side expressions
If this condition is not satisfied, the
'relative error ≤ CT' criterion is used
for checking the rule consistency.
In FREETK there is a fixed TV=1.
In TK Solver Plus this parameter may be
changed on the Global Sheet and thus the
checking criterion adjusted to the order
of magnitude of computed values.
027
STATUS LINE
The Status Line is the top line on TK screen.
It contains the following information (from
left to right):
- Information related to the current cursor
position:
- row number and field label,
- field name,
- field contents (e.g. full internal
representation of a numeric value
with up to 16 significant digits).
- Memory Indicator, approximate amount of
unused memory, in kbytes.
- Solution Indicator, shows the status of
the Variable Sheet:
OK -- indicates no change in the Variable
or Rule Sheet since the last solution,
i.e. the displayed output values may
be trusted,
F9 -- there has been a change, and the Solve
command F9 should be invoked to
restore the integrity of the sheets'
contents.
012
PROMPT/ERROR LINE
The Prompt/Error Line is the second line on TK
screen. It serves for
- displaying error messages and prompts,
- indicating which solver is being used,
- entering names of files to be loaded, saved
or deleted,
- specifying variables or expressions to be
evaluated with the /E commands, and
- typing in other command-related information.
030
WILDCARDS or GLOBAL FILENAME CHARACTERS
are special characters you can use within a
filename and extension to specify a group of
files to be displayed in the Disk Index.
? indicates that any character can occupy the
given position (question mark in TK must
be typed by pressing Ctrl-Q because ?
invokes Help),
* indicates that any character can occupy the
given position and all the remaining
positions in the filename or extension.
EXAMPLES:
1. F3 rlc??a ─┘ will bring up RLC01A.TK,
RLC05A.TK and RLC23A.TK in the Disk Index,
and will ignore RLC01B.TK, RLC23B.TK and
RLC01AB.TK .
2. F3 rlc0* ─┘ applied to the same directory
will bring up RLC01A.TK, RLC05.TK,
RLC01B.TK and RLC01AB, and it will ignore
RLC23A.TK and RLC23B.TK .
030
ARITHMETIC OPERATIONS
are (in order of precedence):
^ exponentiation
+ - unary plus and minus
* / multiplication and division
+ - addition and subtraction
NOTES:
- Operations at the same precedence level are
performed from left to right, except for
exponentiation operations, which are performed
from right to left.
- When arithmetic and relational operators are
combined, the relational operators have the
lowest precedence level.
- The order of operations may be controlled by
parentheses.
EXAMPLES:
1. 2 + 3 * 4 evaluates into 14
2. (2+3) * 4 evaluates into 20
3. 4e150 / 2e180 * 3e200 evaluates into 6e170
4. 4e150 * 3e200 / 2e180
causes exponent overflow
5. 4 ^ 2 ^ 3 evaluates into 65536
6. (4^2) ^ 3 evaluates into 4096
7. 3 > 2 > 4 evaluates into 0
8. 3 > (2>4) evaluates into 1
9. 2 < 3 * 4 evaluates into 1
10. (2<3) * 4 evaluates into 4
018
INDETERMINATE EXPRESSIONS
When evaluating expressions, the values of
operands or function arguments may be available,
but the information they carry may be insuffi-
cient to determine the result. There are seven
such situations in TK:
x = 0/0 0 = 0^x
1 = 1^x x = 0^0
1 = x^0 x = atan2(0,0)
x = atan2d(0,0)
(the unknown x cannot be evaluated from any of
these equations)
TK ignores an indeterminate expression when
encountered, and leaves the rule 'unsatisfied'.
016
SCREEN COMPOSITION
The FREETK screen consists of
- Message Area: Top two lines called
Status Line and Prompt/Error Line.
- Information Area: Lines 3 through 24, may
contain one or two windows with TK sheets.
The windows may be split or unsplit using
the Window command, /W, and the sheets may
changed using the Select Sheet command, = .
- Bottom Prompt Line (optional, may be turned
off by an appropriate setting in the
configuration file).
022
ITERATION COUNT
The steps performed by the Iteration Solver are
counted and the current step numbers are
displayed during the iteration on the Prompt/
Error Line.
In FREETK the Maximum Iteration Count is set to
10. If the Iterative Solver does not find a
solution within 10 steps, it stops, FREETK
beeps, and the latest guess values and the
flag G remain in the Input and Status fields
respectively. You may press F9 again. If the
Iterative Solver just needed more steps, there
is a chance that it will eventually converge to
the solution. (It is more likely, however, that
the iteration diverged, and you should try again
with different guess values and/or variables.)
NOTE: In TK Solver Plus the Maximum Iteration
Count may be set on the Global Sheet
according to the needs of a particular
problem.
018
CONVERGENCE FACTOR
is displayed during iteration on the Prompt/
Error Line. It shows the progress of the
Iterative Solver toward the solution.
The Convergence Factor is defined as
ln ( ABSERR / (CT*TV) )
(see explanation of terms in "Comparison
Tolerance")
If there are more guesses and error terms than
one, the maximum ABSERR (i.e. the bottleneck)
is used. The iteration is usually considered
successful when the convergence factor falls
below zero.
015
QUESTION MARK, ?
The Question Mark's main role in FREETK is
invocation of Help (though, pressing the
function key F1 serves the same purpose).
The most frightening event for the uninitiated
is the appearance of ? in front of an input or
output value in the Variable Sheet. It indi-
cates an error in the unit specification or a
missing unit conversion (check the Unit Sheet!).
If you wish to use the character ? (e.g. in a
comment), you have to type it by pressing
Ctrl-Q, because typing ? invokes Help.
083
S O L V E R S
FREETK and other versions of TK Solver program
employ two major mechanisms for solving mathe-
matical problems numerically:
- the Direct Solver using a consecutive sub-
stitution procedure, and
- the Iterative Solver using a modified Newton-
Raphson procedure on top of the Direct Solver.
The main strength of TK is detecting and per-
forming automatically any inverse operations
required in the process of solving equations
or satisfying rules and constraints. This
technique covers what is commonly known as
'backsolving' or 'goal seeking'.
EXAMPLES:
1. If y = sin(x) is stated and y is known,
TK takes arc sine of y to evaluate x .
2. If ln(a) = b + c*d is stated (spelling
out addition and multiplication), and a,b,c
are known, TK uses subtraction and division
to evaluate d=(ln(a)-b)/c .
3. If or(sick,tired)=and(home,rest)
is stated, and "tired" is known to be 1
(true), then the Direct Solver infers that
one should stay home=1 and have rest=1 ;
it doesn't matter "sick" is known to be 1
or 0 , or if it is unknown.
TK action in most applications comes down to
solving one or more equations, linear or non-
linear, algebraic or transcendental (hence the
epithet 'equation processor').
Typically there are m independent equations
with n unknowns (m<n). Possible outcomes of
applying the solvers are as follows:
- Values of n-m variables are given, the
Direct solver solves for m unknowns.
- The same, the Iterative Solver solves for
m unknowns.
- The same, solution not completed because of
indeterminacy condition.
- The same, solution not completed because of
domain error.
- The values of less than n-m variables given,
solution is incomplete.
- The values of more than n-m variables given,
one of the equations becomes inconsistent,
and the solution process is terminated.
EXAMPLES (in order of the above cases):
Assume two equations with four variables:
a * (.5+x)^2 = sin(y/2)
b * (y-pi()) = ln(x)
1. x=1.5 and y=2 assigned as inputs; Direct
Solver returns a=.21036775 and b=-.3551749.
2. a=.2 and b=-.5 assigned as inputs and x
is made guess = 1.5; Iterative Solver returns
x=1.6085001 and y=2.1909884.
3. a=4/9 and y=pi() assigned as inputs; Direct
Solver evaluates x=1 from the 1st equation,
and the 2nd is ignored because of b=0/0.
4. a=pi() and y=4/9 assigned as inputs; Direct
Solver returns x=-.2351325 from the 1st eq-n,
and solution stops on attempt to take ln(x).
5. only a=pi() assigned as input; nothing is
evaluated.
6. b=-.5, x=1.5 and y=2 assigned as inputs;
Direct Solver evaluates a=.21036775 from the
1st equation and stops on inconsistency error
in the 2nd.
The solvers form the basis of TK's declarative
nature. They are complemented in TK Solver Plus
by user-definable procedures, i.e. sequential
programs for specific tasks that are hard or
impossible to accomplish in the purely
declarative FREETK (e.g. solving differential
equations).
014
ZERO-BY-ZERO DIVISION
is one of seven indeterminate expressions that
are ignored when encountered by the solvers.
The 0/0 constructs may be used as an alternative
to conditional rules.
EXAMPLE:
a + b = GIVEN('x,'y,c*d,0/z)
(if x and y are assigned input values then
the rule is a+b=c*d; else, if z<>0 then the
rule is a+b=0, and if z=0 then the rule is
ignored and bypassed by the solvers)
017
B E E P
indicates that FREETK was unable to follow a
command and/or complete an action because some
error conditions developed, or because the
command or action was terminated by pressing
F2 or Ctrl-Break.
In most error situations FREETK displays an
error message, and provides additional explana-
tion when F1 or ? is pressed for Help.
In some cases (such as trying to move the cursor
beyond the sheet boundary or FREETK limits) it
just beeps.
When in Help, your illegal actions produce a
deeper 'thud'.
066
TROUBLESHOOTING
Most of the problems encountered when using
FREETK are not caused by the program doing
something wrong, or even by lack of TK skills
on your part (that, anyway, should be remedied
by resorting to the Help frequently).
More often than not trouble comes from half-
baked or unfit mathematical models and/or
infeasible input data or constraints. In fact,
TK may be useful in sorting out mathematical
and other fallacies.
EXAMPLE: How long would it take to repay a
$100,000 loan at 10% interest with a monthly
payment of $500? You can protect TK and your-
self from such absurd questions by letting your
model check for an infinite payment term.
Here are a few troubleshooting hints:
- Check the balance of number of equations,
total number of variables, number of inputs
and number of unknowns. There is no way (TK
or other) to solve for more unknowns than the
number of independent equations.
- Mimic the Direct or Iterative Solver path to
find out what unknown is evaluated by what
equation.
- Use toggle switch C (in the rule's Status
field) to 'turn off' the selected equations
and isolate trouble spots.
- Add error terms to equations showing incon-
sistency, and test them.
- Use the Examine (/E) command to check on
variables and expressions.
- Beware of the hard-to-predict effects of
conditional rules.
- Pay serious attention to the selection of
guess variables and choice of guess values.
- Consider two or more roots or solutions to
your problem when applicable.
- Remember that the sqrt function returns a
positive root although the negative one may be
appropriate; likewise inverse trigonometric
functions return principal values.
- Try to avoid the iteration process straying
into the regions of argument errors (easier to
say than to do; it may take some luck and some
sleuthing assisted by TK itself, i.e. turning
the knowns and unknowns around, checking the
error terms at the trouble spots, trying
alternative ways, etc.).
- Beware of divergence when using the Iterative
Solver. Refer to the FREETK follow-up package
(see FTKINTRO.TXT) or numerical analysis lite-
rature for information about inner workings
of the Newton-Raphson procedure.
The full TK Solver Plus with list solving,
graphics, procedure functions, interactive
tables, etc. is much better equipped for
thorough diagnostics and efficient trouble-
shooting than FREETK. TK Solver Plus offers, in
particular, a variety of alternatives to the
built-in Iterative Solver for ill-behaved
problems.
!help
!!S
/unknown
!!?
c101
"(<
c102
")"
c103
"&J
c105
".K
c24
".'
c26
"6I
c28
"6I
c30
")"
c31
"'V
c33
"&$
c37
"&J
c39
"6I
c400
!],
c401
!],
c403
!],
c404
!],
c405
!],
c406
!_L
c407
!`=
c408
!`L
c409
"!@
c410
""=
c411
!],
c413
"&$
c414
"&J
c415
"'V
c416
"(<
c417
")"
c419
"//
c420
".'
c422
"6X
c423
"6I
c424
".K
c426
"//
c427
"16
c429
"4-
c43
"16
c430
"4O
c431
"51
c433
"5S
c436
"6I
c437
"6I
c438
"6I
c439
"6I
c440
"6X
c441
"6X
c442
"6X
c443
"6X
c47
"2@
c48
"5S
c50
"5S
c51
!\G
c52
"16
c54
"2@
c55
"4O
c56
"51
c63
!#.
c91
"6X
c92
"6X
e1
!;#
e10
!>?
e104
!L%
e106
!L4
e11
!?'
e12
!?O
e13
!@+
e14
!(_
e15
!@S
e16
!A3
e17
!A[
e18
!B;
e19
!C5
e2
!;2
e21
!CU
e22
!D1
e3
!<$
e34
!D@
e36
!E&
e38
!EI
e4
!*H
e41
!F/
e42
!FQ
e49
!G3
e5
!+)
e53
!GS
e57
!H5
e58
!HD
e59
!*9
e6
!+)
e60
!*H
e601
!LW
e602
!M7
e603
!MW
e604
!N7
e605
!NW
e606
!O&
e607
!OF
e608
!OZ
e609
!P)
e61
!HS
e610
!P8
e611
!PG
e612
!PV
e613
!Q%
e614
!QE
e615
!QT
e62
!I"
e64
"*B
e65
!*H
e66
!*H
e67
!IE
e68
!IT
e7
!<V
e701
!R(
e702
!R(
e703
!R<
e704
!RP
e707
!R_
e711
!S3
e712
!SG
e713
!S[
e714
!T/
e715
!TC
e716
!TW
e717
!U+
e718
!U?
e719
!US
e720
!V"
e724
!V6
e725
!VE
e726
!VY
e727
!W(
e728
!W<
e729
!WP
e73
!J4
e730
!X$
e731
!X8
e733
!R(
e734
!XL
e735
!X[
e736
!Y?
e737
!Z%
e738
!Z4
e739
!ZC
e740
![)
e75
!JT
e76
"0A
e77
"0A
e8
!=6
e81
"0A
e82
"0A
e83
!K4
e84
"?&
e88
!KC
e89
"7'
e9
!=^
e90
!*9
prr
"?F
prs
"?&
pua
"@'
puf
"@'
pum
"@'
put
"@'
pvc
">1
pvi
"7K
pvn
"8N
pvo
"9D
pvs
"7'
pvu
":(
pvvc
">1
pvvd
";L
pvvf
">@
pvvi
"7K
pvvo
"9D
pvvs
"7'
pvvu
"=)